new function (gtk_tree_view_column_create_button): use g_signal_* instead
authorKristian Rietveld <kris@gtk.org>
Tue, 19 Feb 2002 21:16:49 +0000 (21:16 +0000)
committerKristian Rietveld <kristian@src.gnome.org>
Tue, 19 Feb 2002 21:16:49 +0000 (21:16 +0000)
Tue Feb 19 22:10:59 2002  Kristian Rietveld  <kris@gtk.org>

        * gtktreeviewcolumn.c (gtk_tree_view_column_mnemonic_activate): new
        function
        (gtk_tree_view_column_create_button): use g_signal_* instead of
        gtk_signal_*, hook up _mnemonic_activate callback
        (gtk_tree_view_column_update_button): use
        gtk_label_set_text_width_mnemonic instead of gtk_label_set_text
        (#69095)

        * gtktreeview.c (gtk_tree_view_class_init): remove key bindings
        for C-f and C-b, let treeview search use C-f (instead of C-s)
        (#61886)

        * gtkrc.key.emacs: add some GtkTreeView bindings

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkrc.key.emacs
gtk/gtktreeview.c
gtk/gtktreeviewcolumn.c

index 168b3164a96a757dfac855d5a4482daab120c4ee..f2505164e442af0cc1145ab47490f823d137a1a4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+Tue Feb 19 22:10:59 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtktreeviewcolumn.c (gtk_tree_view_column_mnemonic_activate): new
+       function
+       (gtk_tree_view_column_create_button): use g_signal_* instead of
+       gtk_signal_*, hook up _mnemonic_activate callback
+       (gtk_tree_view_column_update_button): use
+       gtk_label_set_text_width_mnemonic instead of gtk_label_set_text
+       (#69095)
+
+       * gtktreeview.c (gtk_tree_view_class_init): remove key bindings
+       for C-f and C-b, let treeview search use C-f (instead of C-s)
+       (#61886)
+
+       * gtkrc.key.emacs: add some GtkTreeView bindings
+
 Tue Feb 19 20:56:32 2002  Soeren Sandmann  <sandmann@daimi.au.dk>
 
        * gtk/theme-bits/decompose-bits.c (do_part): fix bug (skipping all
index 168b3164a96a757dfac855d5a4482daab120c4ee..f2505164e442af0cc1145ab47490f823d137a1a4 100644 (file)
@@ -1,3 +1,19 @@
+Tue Feb 19 22:10:59 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtktreeviewcolumn.c (gtk_tree_view_column_mnemonic_activate): new
+       function
+       (gtk_tree_view_column_create_button): use g_signal_* instead of
+       gtk_signal_*, hook up _mnemonic_activate callback
+       (gtk_tree_view_column_update_button): use
+       gtk_label_set_text_width_mnemonic instead of gtk_label_set_text
+       (#69095)
+
+       * gtktreeview.c (gtk_tree_view_class_init): remove key bindings
+       for C-f and C-b, let treeview search use C-f (instead of C-s)
+       (#61886)
+
+       * gtkrc.key.emacs: add some GtkTreeView bindings
+
 Tue Feb 19 20:56:32 2002  Soeren Sandmann  <sandmann@daimi.au.dk>
 
        * gtk/theme-bits/decompose-bits.c (do_part): fix bug (skipping all
index 168b3164a96a757dfac855d5a4482daab120c4ee..f2505164e442af0cc1145ab47490f823d137a1a4 100644 (file)
@@ -1,3 +1,19 @@
+Tue Feb 19 22:10:59 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtktreeviewcolumn.c (gtk_tree_view_column_mnemonic_activate): new
+       function
+       (gtk_tree_view_column_create_button): use g_signal_* instead of
+       gtk_signal_*, hook up _mnemonic_activate callback
+       (gtk_tree_view_column_update_button): use
+       gtk_label_set_text_width_mnemonic instead of gtk_label_set_text
+       (#69095)
+
+       * gtktreeview.c (gtk_tree_view_class_init): remove key bindings
+       for C-f and C-b, let treeview search use C-f (instead of C-s)
+       (#61886)
+
+       * gtkrc.key.emacs: add some GtkTreeView bindings
+
 Tue Feb 19 20:56:32 2002  Soeren Sandmann  <sandmann@daimi.au.dk>
 
        * gtk/theme-bits/decompose-bits.c (do_part): fix bug (skipping all
index 168b3164a96a757dfac855d5a4482daab120c4ee..f2505164e442af0cc1145ab47490f823d137a1a4 100644 (file)
@@ -1,3 +1,19 @@
+Tue Feb 19 22:10:59 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtktreeviewcolumn.c (gtk_tree_view_column_mnemonic_activate): new
+       function
+       (gtk_tree_view_column_create_button): use g_signal_* instead of
+       gtk_signal_*, hook up _mnemonic_activate callback
+       (gtk_tree_view_column_update_button): use
+       gtk_label_set_text_width_mnemonic instead of gtk_label_set_text
+       (#69095)
+
+       * gtktreeview.c (gtk_tree_view_class_init): remove key bindings
+       for C-f and C-b, let treeview search use C-f (instead of C-s)
+       (#61886)
+
+       * gtkrc.key.emacs: add some GtkTreeView bindings
+
 Tue Feb 19 20:56:32 2002  Soeren Sandmann  <sandmann@daimi.au.dk>
 
        * gtk/theme-bits/decompose-bits.c (do_part): fix bug (skipping all
index 168b3164a96a757dfac855d5a4482daab120c4ee..f2505164e442af0cc1145ab47490f823d137a1a4 100644 (file)
@@ -1,3 +1,19 @@
+Tue Feb 19 22:10:59 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtktreeviewcolumn.c (gtk_tree_view_column_mnemonic_activate): new
+       function
+       (gtk_tree_view_column_create_button): use g_signal_* instead of
+       gtk_signal_*, hook up _mnemonic_activate callback
+       (gtk_tree_view_column_update_button): use
+       gtk_label_set_text_width_mnemonic instead of gtk_label_set_text
+       (#69095)
+
+       * gtktreeview.c (gtk_tree_view_class_init): remove key bindings
+       for C-f and C-b, let treeview search use C-f (instead of C-s)
+       (#61886)
+
+       * gtkrc.key.emacs: add some GtkTreeView bindings
+
 Tue Feb 19 20:56:32 2002  Soeren Sandmann  <sandmann@daimi.au.dk>
 
        * gtk/theme-bits/decompose-bits.c (do_part): fix bug (skipping all
index 168b3164a96a757dfac855d5a4482daab120c4ee..f2505164e442af0cc1145ab47490f823d137a1a4 100644 (file)
@@ -1,3 +1,19 @@
+Tue Feb 19 22:10:59 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtktreeviewcolumn.c (gtk_tree_view_column_mnemonic_activate): new
+       function
+       (gtk_tree_view_column_create_button): use g_signal_* instead of
+       gtk_signal_*, hook up _mnemonic_activate callback
+       (gtk_tree_view_column_update_button): use
+       gtk_label_set_text_width_mnemonic instead of gtk_label_set_text
+       (#69095)
+
+       * gtktreeview.c (gtk_tree_view_class_init): remove key bindings
+       for C-f and C-b, let treeview search use C-f (instead of C-s)
+       (#61886)
+
+       * gtkrc.key.emacs: add some GtkTreeView bindings
+
 Tue Feb 19 20:56:32 2002  Soeren Sandmann  <sandmann@daimi.au.dk>
 
        * gtk/theme-bits/decompose-bits.c (do_part): fix bug (skipping all
index 168b3164a96a757dfac855d5a4482daab120c4ee..f2505164e442af0cc1145ab47490f823d137a1a4 100644 (file)
@@ -1,3 +1,19 @@
+Tue Feb 19 22:10:59 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtktreeviewcolumn.c (gtk_tree_view_column_mnemonic_activate): new
+       function
+       (gtk_tree_view_column_create_button): use g_signal_* instead of
+       gtk_signal_*, hook up _mnemonic_activate callback
+       (gtk_tree_view_column_update_button): use
+       gtk_label_set_text_width_mnemonic instead of gtk_label_set_text
+       (#69095)
+
+       * gtktreeview.c (gtk_tree_view_class_init): remove key bindings
+       for C-f and C-b, let treeview search use C-f (instead of C-s)
+       (#61886)
+
+       * gtkrc.key.emacs: add some GtkTreeView bindings
+
 Tue Feb 19 20:56:32 2002  Soeren Sandmann  <sandmann@daimi.au.dk>
 
        * gtk/theme-bits/decompose-bits.c (do_part): fix bug (skipping all
index ce5e737c2ab4fa598d7657251609f1e47e4a7a71..bd2bd5c74dc6ae36c234084444a606867a388f22 100644 (file)
@@ -50,6 +50,17 @@ binding "gtk-emacs-text-view"
   bind "<ctrl>KP_Space" { "set-anchor" () }
 }
 
+#
+# Bindings for GtkTreeView
+#
+binding "gtk-emacs-tree-view"
+{
+  bind "<ctrl>s" { "start-interactive-search" () }
+  bind "<ctrl>f" { "move-cursor" (logical-positions, 1) }
+  bind "<ctrl>b" { "move-cursor" (logical-positions, -1) }
+}
+
 class "GtkEntry" binding "gtk-emacs-text-entry"
 class "GtkTextView" binding "gtk-emacs-text-entry"
 class "GtkTextView" binding "gtk-emacs-text-view"
+class "GtkTreeView" binding "gtk-emacs-tree-view"
index 3876a466061524cd6b0214a0b38d348f9feb3be2..ae2218ba5e7fb05a011303c97af6700bd12104b3 100644 (file)
@@ -818,14 +818,6 @@ gtk_tree_view_class_init (GtkTreeViewClass *class)
                                GTK_TYPE_ENUM, GTK_MOVEMENT_VISUAL_POSITIONS,
                                GTK_TYPE_INT, -1);
 
-  gtk_binding_entry_add_signal (binding_set, GDK_f, GDK_CONTROL_MASK, "move_cursor", 2,
-                               GTK_TYPE_ENUM, GTK_MOVEMENT_LOGICAL_POSITIONS,
-                               GTK_TYPE_INT, 1);
-
-  gtk_binding_entry_add_signal (binding_set, GDK_b, GDK_CONTROL_MASK, "move_cursor", 2,
-                               GTK_TYPE_ENUM, GTK_MOVEMENT_LOGICAL_POSITIONS,
-                               GTK_TYPE_INT, -1);
-
   gtk_binding_entry_add_signal (binding_set, GDK_space, GDK_CONTROL_MASK, "toggle_cursor_row", 0);
 
   gtk_binding_entry_add_signal (binding_set, GDK_a, GDK_CONTROL_MASK, "select_all", 0);
@@ -886,9 +878,9 @@ gtk_tree_view_class_init (GtkTreeViewClass *class)
 
   gtk_binding_entry_add_signal (binding_set, GDK_BackSpace, 0, "select_cursor_parent", 0);
 
-  gtk_binding_entry_add_signal (binding_set, GDK_s, GDK_CONTROL_MASK, "start_interactive_search", 0);
+  gtk_binding_entry_add_signal (binding_set, GDK_f, GDK_CONTROL_MASK, "start_interactive_search", 0);
 
-  gtk_binding_entry_add_signal (binding_set, GDK_S, GDK_CONTROL_MASK, "start_interactive_search", 0);
+  gtk_binding_entry_add_signal (binding_set, GDK_F, GDK_CONTROL_MASK, "start_interactive_search", 0);
 }
 
 static void
index 86d2af96e143fd651f007151237a57011df63d83..6e67316cd9526f5d4901271025a0fec87987381d 100644 (file)
@@ -94,6 +94,9 @@ static gint gtk_tree_view_column_button_event                  (GtkWidget
                                                                gpointer                 data);
 static void gtk_tree_view_column_button_clicked                (GtkWidget               *widget,
                                                                gpointer                 data);
+static gboolean gtk_tree_view_column_mnemonic_activate         (GtkWidget *widget,
+                                                               gboolean   group_cycling,
+                                                               gpointer   data);
 
 /* Property handlers */
 static void gtk_tree_view_model_sort_column_changed            (GtkTreeSortable         *sortable,
@@ -535,14 +538,14 @@ gtk_tree_view_column_create_button (GtkTreeViewColumn *tree_column)
   if (tree_view->priv->header_window)
     gtk_widget_set_parent_window (tree_column->button, tree_view->priv->header_window);
   gtk_widget_set_parent (tree_column->button, GTK_WIDGET (tree_view));
-  
-  gtk_signal_connect (GTK_OBJECT (tree_column->button), "event",
-                     (GtkSignalFunc) gtk_tree_view_column_button_event,
-                     (gpointer) tree_column);
-  
-  gtk_signal_connect (GTK_OBJECT (tree_column->button), "clicked",
-                     (GtkSignalFunc) gtk_tree_view_column_button_clicked,
-                     (gpointer) tree_column);
+
+  g_signal_connect (G_OBJECT (tree_column->button), "event",
+                   G_CALLBACK (gtk_tree_view_column_button_event),
+                   (gpointer) tree_column);
+
+  g_signal_connect (G_OBJECT (tree_column->button), "clicked",
+                   (GtkSignalFunc) gtk_tree_view_column_button_clicked,
+                   (gpointer) tree_column);
 
   tree_column->alignment = gtk_alignment_new (tree_column->xalign, 0.5, 0.0, 0.0);
 
@@ -557,6 +560,10 @@ gtk_tree_view_column_create_button (GtkTreeViewColumn *tree_column)
       gtk_widget_show (child);
     }
 
+  g_signal_connect (G_OBJECT (child), "mnemonic_activate",
+                   G_CALLBACK (gtk_tree_view_column_mnemonic_activate),
+                   (gpointer) tree_column);
+
   if (tree_column->xalign <= 0.5)
     gtk_box_pack_end (GTK_BOX (hbox), tree_column->arrow, FALSE, FALSE, 0);
   else
@@ -622,11 +629,11 @@ gtk_tree_view_column_update_button (GtkTreeViewColumn *tree_column)
       g_return_if_fail (GTK_IS_LABEL (current_child));
 
       if (tree_column->title)
-       gtk_label_set_text (GTK_LABEL (current_child),
-                           tree_column->title);
+       gtk_label_set_text_with_mnemonic (GTK_LABEL (current_child),
+                                         tree_column->title);
       else
-       gtk_label_set_text (GTK_LABEL (current_child),
-                           "");
+       gtk_label_set_text_with_mnemonic (GTK_LABEL (current_child),
+                                         "");
     }
 
   switch (tree_column->sort_order)
@@ -795,6 +802,30 @@ gtk_tree_view_column_button_clicked (GtkWidget *widget, gpointer data)
   g_signal_emit_by_name (G_OBJECT (data), "clicked");
 }
 
+static gboolean
+gtk_tree_view_column_mnemonic_activate (GtkWidget *widget,
+                                       gboolean   group_cycling,
+                                       gpointer   data)
+{
+  GtkTreeViewColumn *column = (GtkTreeViewColumn *)data;
+
+  g_return_val_if_fail (GTK_IS_TREE_VIEW_COLUMN (column), FALSE);
+
+  if (column->clickable)
+    gtk_button_clicked (GTK_BUTTON (column->button));
+  else if (GTK_WIDGET_CAN_FOCUS (column->button))
+    gtk_widget_grab_focus (column->button);
+  else
+    {
+      GTK_TREE_VIEW (column->tree_view)->priv->focus_column = column;
+      GTK_TREE_VIEW_SET_FLAG (GTK_TREE_VIEW (column->tree_view),
+                             GTK_TREE_VIEW_DRAW_KEYFOCUS);
+      gtk_widget_grab_focus (column->tree_view);
+    }
+
+  return TRUE;
+}
+
 static void
 gtk_tree_view_model_sort_column_changed (GtkTreeSortable   *sortable,
                                         GtkTreeViewColumn *column)